/*******************************************************************************
  * 文件：TKComm.h
  * 作者：djy
  * 版本：v1.0.0
  * 日期：2024-02-22
  * 说明：触摸芯片通讯组件
*******************************************************************************/
#ifndef __TK_COMM_H
#define __TK_COMM_H

/* 头文件 *********************************************************************/
// 通用头文件
#include "Typedefine.h"
#include "Constant.h"
#include "Macro.h"  
#include "OS_Timer.h"

/* 宏定义 *********************************************************************/
#define U8_TOUCH_KEY_COMM_FRAMELEN          ((U8)(17))          // 报文长度
#define U8_TOUCH_KEY_COMM_CRCSEED           ((U16)0X1021)       // CRC SEED

#define U8_TOUCH_KEY_COMM_STX               ((U8)(0xE1))        // 帧头
#define U8_TOUCH_KEY_COMM_SOURCEADDR        ((U8)(0x01))        // 源地址
#define U8_TOUCH_KEY_COMM_DESTADDR          ((U8)(0x40))        // 目的地址
#define U8_TOUCH_KEY_COMM_CMD               ((U8)(0xD0))        // 命令
#define U8_TOUCH_KEY_COMM_DATALEN           ((U8)(0x08))        // 数据长度
#define U8_TOUCH_KEY_COMM_DBANUMS           ((U8)(0x01))        // 数据块个数
#define U8_TOUCH_KEY_COMM_DBAADDRH          ((U8)(0x00))        // 数据块地址（高字节）
#define U8_TOUCH_KEY_COMM_DBAADDRL          ((U8)(0x00))        // 数据块地址（低字节）
#define U8_TOUCH_KEY_COMM_DBALEN            ((U8)(0x04))        // 数据块长度
#define U8_TOUCH_KEY_COMM_ETX               ((U8)(0xE3))        // 帧尾

/* 类型定义 *******************************************************************/
#pragma pack(1)

typedef struct
{
    U8 u8STX;               // 帧头
    U8 u8Seq;               // 包序号
    U8 au8SourceAddr;       // 源地址
    U8 au8DestAddr;         // 目的地址
    U8 u8Cmd;               // 命令
    U8 u8DataLen;           // 数据长度
    U8 u8DBANums;           // 数据块个数
    U8 u8DBAAddrH;          // 数据块地址（高字节）
    U8 u8DBAAddrL;          // 数据块地址（低字节）
    U8 u8DBALen;            // 数据块长度
    U8 u8KeyValue[4];       // 按键值
    U8 u8CRC[2];            // CRC校验
    U8 u8ETX;               // 帧尾
}TKFrame_ts;// 触摸按键报文格式

#pragma pack()

/* 变量声明 *******************************************************************/
/* 函数声明 *******************************************************************/
void TKCommRecvFrameTask(void); // 通讯解析任务 
void TKComm_Init(void);         // 初始化

#endif /* __TK_COMM_H */

/***************************** 文件结束 ***************************************/
